import { BtMessage } from './utils/BtMessage.js'
import { login, loginEmail } from './api/index.js' // 有点命名冲突，这里起个别名

// 用一个状态变量，存储当前的登录方式
let login_status = 'uname'

$(document).ready(() => {

    $("#btn-login").click(login_real)
    $("#t-uname").click(function(e) {
        toggleLogin()
        e.preventDefault()
    })
    $("#t-email").click(function(e) {
        toggleLogin()
        e.preventDefault()
    })

    $("#l-btn-captcha").click(function() {
        // 获取验证码
        const btn = $(this)
        btn.attr("disabled", 'true') // 给按钮添加禁止的属性

        let t = 60 // 倒计时60s，并且显示倒计时时间
        btn.text("获取验证码(" + t + ")")
        const handler = setInterval(() => {
            t --
            btn.text("获取验证码(" + t + ")")
            if (!t) {
                clearInterval(handler)
                btn.removeAttr('disabled')
                btn.text("获取验证码")
            }
        }, 1000)
    })

})

const toggleLogin = () => {

    // 切换显示的内容
    login_status = login_status == 'uname' ? 'email' : 'uname'
    if (login_status == 'uname') {
        $("#t-uname").addClass("d-none")
        $("#t-email").removeClass("d-none")
        
        $("#login-email").addClass("d-none")
        $("#login-uname").removeClass("d-none")
    }else {
        $("#t-email").addClass("d-none")
        $("#t-uname").removeClass("d-none")

        $("#login-uname").addClass("d-none")
        $("#login-email").removeClass("d-none")
        
    }
}

const login_real = () => {
    let res = null

    if (login_status == 'uname') {
        const uname = $("#l-u-uname").val(), pwd = $("#l-u-pwd").val()
        if (!uname || !pwd) {
            return
        }
        res = login(uname, pwd)
    }else {
        const email = $("#l-e-email").val(), code = $("#l-e-captcha").val()
        if (!email || email.indexOf("@") == -1 || !code) {
            return
        }
        res = loginEmail(email, code)
    }

    res.then(res => {
        if (res.code != 200) {
            BtMessage({
                type: 'error',
                message: res.msg || '登录失败，原因未知!'
            })
            return
        }

        // 保存token，跳转回首页
        localStorage.setItem("token", res.data)
        BtMessage({
            type: 'success',
            message: '登录成功!'
        })
        setTimeout(() => {
            window.location.href = "/"
        }, 500)
    })

}